// ------------------------------------------------------------
// Editor
// Slug: /ghost/editor/
//
// Styles for the Editor
//
// * Post Title
// * Container & Floating Headers
// * Editor
// * Markdown Help Icon
// * Post Preview
// * Zen Mode
// * Publish Bar
// * Post Settings Menu meta Data
// * Markdown Help Modal
// ------------------------------------------------------------


//
// Post Title
// --------------------------------------------------

.entry-container .entry-title {
    height: 60px;
    padding: 0 20px;
    position: relative;

    input {
        width: 100%;
        height: 60px;
        border: 0;
        margin: 0;
        padding: 0;
        font-size: 3.6rem;
        font-weight: bold;
        letter-spacing: -1px;
        background: transparent;

        &:focus {
            outline: 0;
        }
    }
}//.entry-title


//
// Container & Floating Headers
// --------------------------------------------------

.editor {

    .notifications.bottom {
        @media (min-width: 401px) {
            bottom: 40px;
        }
    }

    .entry-container {
        position: relative;
        height: 100%;
    }

    // The two content panel wrappers, positioned left/right
    .entry-markdown {
        left: 0;
    }
    .entry-preview {
        right: 0;
        border-left: $lightbrown 1px solid;
    }

    // The visual styles for both panels
    .entry-markdown,
    .entry-preview {
        width: 50%;
        padding: 15px;
        position: absolute;
        bottom: 40px; // height of the publish bar
        top: 60px; // height of the post title + margin
        border-top: $lightbrown 1px solid;
        background: #fff;

        // Hide markdown icon + wordcount when we hit mobile
        @media (max-width: 400px) {
            .markdown-help,
            .entry-word-count {
                display: none;
            }
        }

        @media (max-width: 1000px) {
            // Convert all content areas to small boxes
            top: 100px;
            left: 0;
            right: 0;
            width: 100%;
            border: none;
            z-index: 100;

            .markdown,
            .entry-preview-content {
                height: 50px;
                overflow: hidden;
            }

            // Correctly colour the markdown icon when inactive and hovered
            &:not(.active) .markdown-help:hover:before {
                color: #fff;
            }
        }//@media (max-width: 1000px)

        .floatingheader {
            a {
                color: $brown;
            }

            // Turn headers into tabs which act as links
            // both headers set to grey/inactive colour
            @media (max-width: 1000px) {
                cursor: pointer;
                width: 50%;
                color: #fff;
                font-weight: normal;
                background: $brown;
                position: absolute;
                top: -40px;
                left: 0;
                box-shadow: rgba(0,0,0,0.1) 0 -2px 3px inset;

                a {
                    color: #fff;
                }
            }

            .entry-word-count {
                float: right;
                position: relative;
                top: 2px;
            }
        }//.floatingheader

        // Give the tab with the .active class the highest z-index
        &.active {
            z-index: 200;
        }

        // Restore the normal height of the .active tab (inactive tab stays small, hidden behind)
        &.active .markdown,
        &.active .entry-preview-content {
            height: auto;
            overflow: auto;
            -webkit-overflow-scrolling: touch;
        }

        // Restore the white bg of the currently .active tab, remove hand cursor from currently active tab
        &.active header {
            @media (max-width: 1000px) {
                border-top: $lightbrown 1px solid;
                cursor: auto;
                color: $brown;
                background: #fff;
                box-shadow: none;

                a {
                    color: $brown;
                }
            }
        }
    }//.entry-markdown, .entry-preview

}


//
// Editor
// --------------------------------------------------

.editor {
    .entry-markdown-content {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }

    .markdown-editor {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        height: 100%;
        max-width: 100%;

        overflow: auto;
        -webkit-overflow-scrolling: touch;

        resize: none;
        border: 0;

        font-size: 1.6rem;
        line-height: 2.5rem;
        font-family: $font-family-mono;
        color: lighten($darkgrey, 10%);

        &:focus {
            outline: 0;
        }

        @media (max-width: 450px) {
            padding: 15px;
        }

        @media (min-width: 451px) and (max-width: 1000px) {
            padding: 20px;
        }

        @media (min-width: 1001px) {
            padding: 62px 20px 36px 20px;
        }
    }

    .entry-preview {
        // Align the tab of entry-preview on the right
        .floatingheader {
            @media (max-width: 1000px) {
                right: 0;
                left: auto;
                border-right: none;
            }
        }
    }

    .entry-preview-content {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        padding: 60px 40px 37px 40px;
        overflow: auto;
        -webkit-overflow-scrolling: touch;
        word-break: break-word;
        hyphens: auto;
        user-select: none;
        cursor: default;

        @media (max-width: 400px) {
            padding: 15px;
        }

        @media (max-width: 1000px) {
            padding-top: 20px;
        }
    }

    // Special case, when scrolling, add shadows to content headers.
    @media (max-width: 1000px) {
        .scrolling {
            .floatingheader {
                box-shadow: none;

                &:before,
                &:after {
                    display: none;
                }
            }
        }
        .entry-preview-content {
            @media (max-width: 1000px) {
                box-shadow: 0 5px 5px rgba(0, 0, 0, 0.05) inset;

            }
        }
    }
}//.editor



//
// Firefox Editor Hacks
// --------------------------------------------------
@-moz-document url-prefix() {
    .editor .markdown-editor {
        padding-top: 0;
        padding-bottom: 0;
        top: 40px;
        height: calc(100% - 40px);
    }
}



//
// Markdown Help Icon
// --------------------------------------------------

.markdown-help {
    position: relative;
    top: -3px;
    right: -5px;
    @include icon($i-markdown, '16px', lighten($brown, 15%));
    float: right;
    padding: 5px;

    &:hover {
        @include icon($i-markdown, '', $brown);
    }
}


//
// Post Preview
// --------------------------------------------------

// The styles for the actual content inside the preview
// TODO: These should just be defaults, overridden by editor.hbs in theme dir
.entry-preview-content,
.content-preview-content {
    font-size: 1.8rem;
    line-height: 1.5em;
    font-weight: 200;

    a {
        color: $blue;
        text-decoration: underline;
    }

    sup a {
        text-decoration: none;
    }

    .btn {
        text-decoration: none;
        color: $grey;
    }

    .img-placeholder {
        border: 5px dashed $grey;
        height: 100px;
        position: relative;

        span {
            display: block;
            height: 30px;
            position: absolute;
            margin-top: -15px;
            top: 50%;
            width: 100%;
            text-align: center;
        }
    }

    a {
        &.image-edit {
            width: 16px;
            height: 16px;
        }
    }

    img {
        max-width: 100%;
        height: auto;
        margin: 0 auto;
    }
}

// Placeholder objects for <script> & <iframe>
.js-embed-placeholder,
.iframe-embed-placeholder {
    background: #f9f9f9;
    border: none;
    padding: 100px 20px;
    font-family: $font-family;
    font-weight: bold;
    font-size: 1.6rem;
    text-align: center;
}//.entry-preview-content, .content-preview-content


//
// Zen Mode
// --------------------------------------------------

body.zen {
    background: lighten($lightbrown, 3%);

    .usermenu {
        display: none;
    }

    .global-nav,
    .page-header,
    #publish-bar {
        opacity: 0;
        height: 0;
        overflow: hidden;
        transition: all 0.5s ease-out;
    }

    .page-content {
        top: 0;
        transition: all 0.5s ease-out;
    }

    .entry-markdown,
    .entry-preview {
        bottom: 0;
        transition: all 0.5s ease-out;
    }
}//body.zen


//
// Publish Bar
// --------------------------------------------------

#publish-bar {
    height: 40px;
    padding: 0;
    color: $midgrey;
    background: darken($darkgrey, 4%);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 900;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.2);
    transform: translateZ(0);

    @media (max-width: 1000px) {
        font-weight: normal;
    }

    .post-settings {
        &:hover,
        &.active {
            color: $lightgrey;
        }
    }

    .post-settings-menu {
        position: absolute;
        bottom: 41px;
        right: -3px;
    }

    .splitbtn {
        .btn {
            border-top: rgba(255,255,255,0.3) 1px solid;
        }
    }
}//#publish-bar

.extended-tags { // When the tag bar is expanded
    position: static;
    min-height: 100%;

    #entry-tags {
        &:after {
            right: 10px;
        }
    }

    .tags {
        width: 281px;
    }

    .tag-label,
    .tag-label.touch {
        color: #fff;
    }

    .tag-input {
        width: 100%;
        margin-top: 5px;
        padding-top: 5px;
        padding-left: 10px;
        border-top: 1px solid $darkgrey;

    }
    .right {
        display: none;
    }
}//.extended-tags

#entry-tags {
    input[type="text"].tag-input {
        display: inline-block;
        vertical-align: top;
        color: $lightgrey;
        font-weight: 300;
        background: transparent;
        border: none;
        width: 100%;
        line-height: 1;
        padding: 9px;

        &:focus {
            outline: none;
        }
    }

    .tag {
        @include icon-after($i-x, 10px, #fff) {
            margin-left: 1px;
            vertical-align: 10%;
            text-shadow: rgba(255,255,255,0.15) 0 1px 0;
        }
        display: inline;
        margin-right: 3px;
        padding: 0 5px;
        color: $lightgrey;
        white-space: nowrap;
        background: lighten($grey, 15%);
        border-radius: $border-radius;
        box-shadow: rgba(255,255,255,0.2) 0 1px 0 inset, #000 0 1px 3px;
        user-select: none;

        &:hover {
            cursor: pointer;
        }
    }
}//#entry-tags

.suggestions {
    top: auto;
    bottom: calc(100% + 15px);

    li.selected {
        &,
        a {
            text-decoration: none;
            color: #fff;
            background: $blue;
        }

        mark {
            color: #fff;
        }
    }

    mark {
        background: none;
        color: #000;
        font-weight: bold;
    }
}

#entry-actions {
    display: flex;
    justify-content: flex-end;
    align-content: center;
    align-items: center;
    margin-right: 6px;
    position: relative;

    .dropdown {
        position: absolute;
        bottom: 49px;
        right: 0;

        .dropdown-menu {
            top: auto;
            left: auto;
            right: 100%;
            bottom: 100%;
        }
    }

    &.unsaved {
        padding-bottom: 0;

        .delete {
            display: none;
        }
    }
}//#entry-actions

#entry-actions-menu {
    position: absolute;
    bottom: 50px;
    right: -5px;
}

.tags-wrapper {
    white-space: nowrap;

    span {
        display: inline-block;
        margin-right: 10px;
    }
}

.tag-label {
    display: block;
    width: 40px;
    height: 40px;
    position: relative;

    &:before {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translateX(-50%) translateY(-50%);
        font-size: 1.3rem;
        color: #7D878A;
        transition: color 0.15s linear;
    }

    &:hover:before {
        color: #fff;
    }
}

#entry-tags.focused {
    .tag-label:before {
        color: #fff;
    }
}

.publish-bar-inner {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: space-between;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
}

.publish-bar-tags-icon {
    flex: 0 1 auto;
    align-self: auto;
    min-width: 40px;
    max-width: 40px;
}

.publish-bar-tags {
    flex: 0 1 auto;
    align-self: auto;
    margin-right: 10px;
    height: 40px;
    overflow-y: hidden;

    .tags-wrapper {
        white-space: nowrap;
        overflow: auto;
        -webkit-overflow-scrolling: touch;
        padding-top: 8px;
        padding-bottom: 9px;
        height: 70px;
    }
}

.publish-bar-tags-input {
    flex: 1 1 auto;
    align-self: auto;
    position: relative;
}

.publish-bar-actions {
    display: flex;
    flex: 1 0 auto;
    align-self: auto;
    text-align: right;
}

.post-settings {
    @include icon($i-settings, 14px);
    display: inline-block;
    padding: 8px 10px;
    color: $midgrey;
    transition: all 0.15s ease-out 0s;
    position: relative;

    &:hover,
    &.active {
        color: $darkgrey;
    }
}//.post-settings

.post-settings-menu {
    .dropdown-menu {
        top: auto;
        bottom: 100%;
        left: auto;
        right: 100%;
    }
}//.post-settings-menu

.post-view-link {
    position: absolute;
    top: 1px;
    right: 0;
    font-size: 1.3rem;

    i {
        font-size: 10px;
    }
}


//
// Post Settings Menu meta Data
// --------------------------------------------------

// These styles are copied from Google.com
.seo-preview {
    font-family: Arial, sans-serif;
}

.seo-preview-title {
    font-size: 1.8rem;
    line-height: 2.16rem;
    color: #1E0FBE;
    text-overflow: ellipses;
    -webkit-text-overflow: ellipsis;
    word-wrap: break-word;
}

.seo-preview-link {
    margin: 1px 0 2px 0;
    font-size: 1.3rem;
    line-height: 1.6rem;
    color: #006621;
    word-wrap: break-word;
}

.seo-preview-description {
    font-size: 1.3rem;
    line-height: 1.4;
    color: #545454;
    word-wrap: break-word;
}


//
// Markdown Help Modal
// --------------------------------------------------

.modal-markdown-help-table {
    margin: 0 0 20px;
    width: 100%;

    td, th {
        padding: 8px 0;
    }

    th {
        text-align: left;
    }
}
